Unity 的项目结构
参考资料 Unity3D/项目:Unity工程目录规范 参考资料 Unity下Assets资源目录结构管理
基本分类
基础目录
Resources:可动态加载的资源路径,一般使用 Resources.Load 方式加载
- 只读文件;
- 资源全部打包发布;
- 压缩打包;
- 加密文件;
Editor:存放编辑器的扩展脚本。 所有资源文件或者脚本文件都不会被打进发布包中,并且脚本也只能在编辑时使用。工具类的脚本放在这里,或者是一些编辑时用的 DLL。
Plugins:SDK依赖的库文件
StreamingAssets:可动态加载的资源路径
- 只读文件;
- 资源全部打包发布;
- 不压缩打包;
- 不加密;
- WWW方式加载的文件
Scripts:存放脚本
Scenes:存放场景
资源目录
Textures (贴图) Fonts (文字) Audios (音频) Prefabs (预制体) Models (模型) Shaders (材质球)
动态加载资源的方式
Resources.Load:动态内部加载 AssetBundle:动态外部加载
细分规则
Assets 目录中的所有资源文件名(场景、脚本、预设、模型、网格、纹理、材质、精灵、着色器、音频剪辑、视频剪辑)均采用 大驼峰式命名法 ,即每一个单词的首字母都大写。且使用能够描述其功能或意义的英文单词或词组。
资源文件属于同一类型,需要添加编号加以区别的情况下,采用后缀下划线 _
加两位数字进行编号。
Assets 根目录
Assets 根目录下的文件夹分类如下,根据资源文件使用的目的分类:
文件夹说明(01-10为自定义文件夹,最后4个为默认目录,即系统可识别文件夹,保证名字丝毫不差):
【01.Scenes】:存放所有场景(Scene)文件,统一管理,方便快速寻找并打开场景。 【02.UI】:存放与游戏界面(UI)相关的资源文件,比如按钮,图标,输入框,列表等。 【03.Environment】:存放与环境相关的资源文件,比如背景,建筑物,地形,天空,树木,水体等。 【04.Characters】:存放与人物相关的资源文件,比如玩家控制的角色,敌人,怪兽,NPC,动物等。 【05.Effects】:存放与特效相关的资源文件,比如粒子系统,摄像头渲染特效,动作特效,技能特效,画面特效等。 【06.Input】:存放与玩家输入相关的资源文件,比如PC输入,触屏输入,游戏手柄输入,自定义输入等。 【07.Network】:存放与网络通讯相关的资源文件,比如服务器连接,网络缓存,即时通讯等。 【08.Database】:存放与数据库操作相关的资源文件,比如本地存储,网络存储等。 【09.Others】:存放暂时不知道如何归类的资源文件。 【10.Test】:存放与游戏测试相关的资源文件,在游戏发布前删除该文件夹。 【Editor】:插件目录,该目录在编译项目时,会优先编译,方便项目中代码调用。 【Plugins】:该目录下的代码可调用Unity Editor 的API,存放扩展编辑器的代码。编译时不会被打包到游戏包中。 【Resources】:项目中默认的资源路径,会直接打包到游戏包中,并且可在脚本中加载该目录下的资源。
二级目录下的分类
二级目录下的文件夹分类如下,根据资源文件的文件类型分类:
【Animations】:动画 相关的资源文件。 【Animators】:动画控制器 相关的资源文件。 【Audios】:音频 相关的资源文件。 【Materials】:材质 相关的资源文件。 【Models】:模型 相关的资源文件。 【Prefabs】:预制体 相关的资源文件。 【Sprites】:精灵 相关的资源文件。 【Shaders】:着色器 相关的资源文件。 【Scripts】:脚本 相关的资源文件。 【Textures】:纹理 相关的资源文件。
注明:如果该二级目录不存在某个类型的资源文件,可以省略其文件夹,如【02.UI】目录下:
三级目录下的分类
三级目录下直接存放相关类型的资源文件,如下【Animations】目录下存放所有的动画文件:
程序工程结构案例
3rd-第三方插件目录
- Demigiant 缓动插件
- MeshAnimator Mesh动画插件
Arts-美术资源目录
- Atlas 游戏图集目录,主要为UI图集
- Audio 音频资源目录
- Config 项目配置文件目录
- Editor 编辑器插件(位置应该动态指定)
- Load 预加载配置
- Localization 国际化配置
- Tab 配表Tab
- Unit 角色配置
- Effect 项目特效资源目录
- Font 字体资源目录
- Level 关卡或场景资源目录
- Battle_NameXXX 战斗场景
- Login 登陆初始化场景
- CreatePlayer 创建角色场景
- Map 瓦片大世界初始化场景
- Shader 渲染脚本资源
- Unit 显示单元目录
- Hero 英雄角色资源目录
- Map 大地图相关资源
- Soldier 士兵角色资源目录
- Window 界面资源目录
Editor Default Resources -默认标记器资源目录
Plugins-插件资源目录
- Framework 项目框架插件
- Launcher 游戏初始化场景,启动游戏
Scripts
- Auto 自动生成代码目录(目前包括消息和表格)
- Base 项目基础代码目录(辅助代码,辅助模块)
- Editor 项目编辑器代码目录
- Logic 项目逻辑代码目录(请勿将基础代码放在该目录)
- Map 大地图核模块
- CreatePlayer 创建角色模块
- Building 建筑模块
Standard Assets-标准资源目录
StreamingAssets-流资源包输出目录